<?php
Yii::import('application.vendors.vendors.*');
require_once('PHPExcel.php');

//Instanciamos el objeto PHPEXCEL para construir los datos a poner en EXCEL.
$objPHPExcel = new PHPExcel();

//Obtenemos la hoja activa.
$sheet = $objPHPExcel->getActiveSheet();

//Agregar el titulo del reporte
$objPHPExcel->getActiveSheet()->setCellValue('A1','REPORTE DE REGISTROS ELIMINADOS');

$user = User::model()->findByPk(Yii::app()->user->id);

//COMENTARIOS DEL REPORTE
$sheet->setCellValue('A2', 'GENERADO POR: '.$user->username.'    FECHA: '. date('d-F-Y H:i'));

//Establecemos la cabecera en las siguientes celdas.
$sheet->setCellValue('A4', 'NOMBRES Y APELLIDOS');
$sheet->setCellValue('B4', 'NACIONALIDAD');
$sheet->setCellValue('C4', 'DEPORTE');
$sheet->setCellValue('D4', 'GENERO');
$sheet->setCellValue('E4', 'FUNCION');
$sheet->setCellValue('F4', 'ESTADO');


	//Contador para filas
	$i=4;
	//ForEach para armar los datos
	foreach ($dataProvider->getData() as $data)
	{
		$i++;
		$sheet->setCellValue('A'.$i, $data->persona_nombres_apellidos);		
				
		$nacionalidad = Pais::model()->findByPk($data->persona_nacionalidad);
		$sheet->setCellValue('B'.$i, $nacionalidad->pais_nombre);
		
		
		$deporte = DeporteActividad::model()->findByPk($data->inscripcionNominals[0]->inscripcion_nominal_deporte_actividad);
		$sheet->setCellValue('C'.$i, $deporte->deporte_actividad_descripcion);
		
		$sheet->setCellValue('D'.$i, $data->persona_genero);
		
		$funcion = CategoriaAplica::model()->findByPk($data->inscripcionNominals[0]->inscripcion_nominal_aplica); 
		$sheet->setCellValue('E'.$i, $funcion->categoria_aplica);
		
		$estado = InscripcionNominal::model()->findByPk($data->inscripcionNominals[0]->inscripcion_nominal_id);
		$sheet->setCellValue('F'.$i, $estado->inscripcion_nominal_estado);
	}
	



	
//Agrega las opciones de filtrado en la cabecera
$objPHPExcel->getActiveSheet()->setAutoFilter('A4:' . $objPHPExcel->getActiveSheet()->getHighestColumn() . $objPHPExcel->getActiveSheet()->getHighestRow() );

//Obtenemos el indice de la ultima columna con datos
$highestColumn = $objPHPExcel->getActiveSheet()->getHighestColumn(); 

//Obtenemos el índice de la última fila
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();

//Obtenemos el Indice de la última columna
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); //e.g., 6

//Ponemos un AUtoWidht (ancho de la columna automatico) a los datos
for($column =0; $column < $highestColumnIndex; $column++) 
{
	$objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($column))->setAutoSize(true);
}

//Ponemos negritas a las filas
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16);
$objPHPExcel->getActiveSheet()->getStyle('A4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('B4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('C4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('D4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('E4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('F4')->getFont()->setBold(true);

//Instaciamos un Write del objeto EXCEL
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$nombreDocumento = $user->username.'_'.date('d_F_Y').'_'.date('H').'h'.date('i').'.xlsx';

//Grabamos el Documento
$objWriter->save("report/".$nombreDocumento);
 echo '<a href="'.Yii::app()->request->baseUrl.'/report/'.$nombreDocumento.'">DESCARGAR EXCEL</a><br/>';

//Eliminar de memoria los objetos
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);
unset($objWriter);
?>
